import 'package:flutter/material.dart';
import 'user_search_page.dart';
import 'repository_search_page.dart';
import 'profile_page.dart';

/// 底部导航组件，用于在用户搜索和仓库搜索页面之间切换
class GitCodeBottomNavigation extends StatefulWidget {
  /// 创建GitCodeBottomNavigation实例
  const GitCodeBottomNavigation({super.key});

  @override
  /// 创建导航状态管理对象
  State<GitCodeBottomNavigation> createState() => _GitCodeBottomNavigationState();
}

/// GitCodeBottomNavigation的状态管理类
class _GitCodeBottomNavigationState extends State<GitCodeBottomNavigation> {
  /// 当前选中的页面索引
  int _currentIndex = 0;

  /// 页面列表，包含用户搜索页面、仓库搜索页面和个人页面
  final List<Widget> _pages = const [
    UserSearchPage(),
    RepositorySearchPage(),
    ProfilePage(),
  ];

  /// 处理导航项点击事件，切换当前页面
  void _onTabTapped(int index) {
    setState(() {
      _currentIndex = index;
    });
  }

  @override
  /// 构建底部导航UI
  Widget build(BuildContext context) {
    return Scaffold(
      // 根据当前索引显示对应的页面
      body: _pages[_currentIndex],
      // 底部导航栏
      bottomNavigationBar: BottomNavigationBar(
        // 当前选中的索引
        currentIndex: _currentIndex,
        // 导航项点击回调
        onTap: _onTabTapped,
        // 导航栏类型，fixed表示固定模式
        type: BottomNavigationBarType.fixed,
        // 选中项的颜色
        selectedItemColor: Theme.of(context).colorScheme.primary,
        // 未选中项的颜色
        unselectedItemColor: Colors.grey,
        // 导航项
        items: const [
          // 用户搜索导航项
          BottomNavigationBarItem(
            icon: Icon(Icons.person_outline),
            label: '用户',
          ),
          // 仓库搜索导航项
          BottomNavigationBarItem(
            icon: Icon(Icons.bookmark_outline),
            label: '仓库',
          ),
          // 个人页面导航项
          BottomNavigationBarItem(
            icon: Icon(Icons.person_2_outlined),
            label: '我的',
          ),
        ],
      ),
    );
  }
}